1、最长无重复子数组
思想：动态规划
class Solution {
public:
    /**
     * 
     * @param arr int整型vector the array
     * @return int整型
     */
    int maxLength(vector<int>& arr) {
        // write code here
        int hash[100000]={0};
        vector<int> v(arr.size(),0);
        v[0]=1;
        hash[arr[0]]=1;
        for(int i=1;i<arr.size();i++)
        {
            if(hash[arr[i]])
            {
                int j=i-1;
                for(;j>0;j--)
                {
                    if(arr[j]==arr[i])
                        break;
                }
                if(i-j>v[i-1])
                {
                    v[i]=v[i-1]+1;
                }
                else
                {
                    v[i]=i-j;
                }
            }
            else
            {
                hash[arr[i]]=1;
                v[i]=v[i-1]+1;
            }
        }
        int ans=v[0];
        for(int i=1;i<v.size();i++)
            ans=max(ans,v[i]);
        return ans;
    }
};